package 设计模式.j_享元模式;


import java.util.Arrays;
import java.util.List;

/**
 * 
 * 享元模式：使用共享元对象来有效的支持大量细粒度对象
 *  和单例模式不同的是，同一个类可能会被多次创建不同的对象，而单例只会有一个对象，享元模式可以使用对象的一个字段作为标记
 * 
 * @author caihe
 * @date 2023/3/13 14:06
 */
public class Test {

    public static void main(String[] args) {

        PotionFactory potionFactory = new PotionFactory();

        List<Potion> shop = Arrays.asList(
                potionFactory.createPotion(PotionType.RED_HEALING),
                potionFactory.createPotion(PotionType.RED_HEALING),
                potionFactory.createPotion(PotionType.BLACK_HEALING),
                potionFactory.createPotion(PotionType.INVISIBILITY)
        );

        
        shop.forEach(Potion::drink);
        

    }
    
}
